Fast Planning Heuristic for Batch and Interactive Planning

ABSTRACT

A system and method is disclosed for incremental planning using a list based heuristic. The system includes a database storing supply chain entity data and a server system coupled with the database. The server system receives demand for one or more end items from one or more of the supply chain entities within a supply chain network and collapses the supply chain network into one or more flowpaths for each of the one or more end items. The server system also sorts the one or more flowpaths based on one or more rules or parameters stored in the database and reduces the one or more flowpaths using constraints stored in the database. The server system further generates a supply chain plan by solving the received demand using a list based heuristic stored in the database and communicates the generated supply chain plan to the one or more supply chain entities.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/607,043, filed on Oct. 27, 2009 and entitled “Fast Planning Heuristicfor Batch and Interactive Planning,” which is a continuation-in-part(CIP) of U.S. patent application Ser. No. 12/043,240, filed on Mar. 6,2008 and entitled “Sentient Optimization for Continuous Supply ChainManagement,” which claims the benefit of U.S. Provisional PatentApplication Ser. No. 60/893,428, filed Mar. 7, 2007, entitled“Incremental Planning.” U.S. patent application Ser. No. 12/607,043 alsoclaims priority to U.S. Provisional Patent Application Ser. No.61/109,498, filed Oct. 29, 2008, entitled “Fast Planning Heuristic forBatch and Incremental Planning.”

U.S. patent application Ser. Nos. 12/607,043 and 12/043,240, and U.S.Provisional Patent Application Ser. Nos. 60/893,428, and 61/109,498 areassigned to the assignee of the present application. The subject matterdisclosed in U.S. patent application Ser. Nos. 12/607,043 and12/043,240, and U.S. Provisional Patent Application Ser. Nos.60/893,428, and 61/109,498 are hereby incorporated by reference into thepresent disclosure as if fully set forth herein. The present inventionhereby claims priority under 35 U.S.C. § 119(e) to U.S. ProvisionalPatent Application Ser. Nos. 60/893,428 and 61/109,498.

TECHNICAL FIELD OF THE INVENTION

This invention relates generally to supply chain planning, and moreparticularly to incremental planning using a list based heuristic.

BACKGROUND OF THE INVENTION

A supply chain plan describes items to be procured and operations to beperformed by entities within a supply chain network, in order to deliverproducts, goods, or services to another entity within the supply chainnetwork. Typically, an entity collects data for the supply chain planand runs an optimization algorithm during a specified time interval(i.e., daily, weekly), to produce the supply chain plan. However,traditional optimization algorithms require a representation of thecomplete supply chain plan in memory, which is a latency and isundesirable because it wastes valuable time resources in creating a hugein memory model of the complete supply chain.

In addition, in order to generate an optimal supply chain plan,traditional optimization algorithms traverse the supply chain data bybackward and forward propagating along all the paths stored in memory.This traversal is repeated unnecessarily for each pass of theoptimization algorithm, which is a latency and is undesirable. Inaddition, because of the complexity and the amount supply chain datastored in memory, a typical run-time for generating an optimal supplychain plan may be, for example, 10-12 hours. Once the supply chain planis generated, the entity distributes the supply chain plan to otherentities within the supply chain network and then repeats the processduring the next specified time interval.

However, shortly after, if not immediately after, the supply chain planis generated and distributed to the other entities within the supplychain network, various perturbations (i.e., changes or events) oftenoccur that renders the generated supply chain plan infeasible. Suchperturbations may include, for example, new demands, changes incapacity, changes in inventory, and the like. In addition, because thesupply chain plan is only generated during specified time intervals andthe run-time is significant in duration (i.e., 10-12 hours), the entityis not able to re-optimize, or otherwise adjust the supply chain plan toa state of feasibility, until the next specified time interval.

As a result, conventional efforts to re-optimize or otherwise adjust thesupply chain plan to a state of feasibility, often involves ad hocchanges that are not optimal. In addition, conventional efforts toreduce the duration of the run-time are disadvantageous, because thespeed of optimization is typically incompatible with the quality of theoptimization. That is, these conventional efforts to reduce the durationof the run-time adversely affect the quality of the adjustments to thesupply chain plan. This inability to reduce the duration of the run-timeand to re-optimize or otherwise adjust the supply chain plan to a stateof feasibility, based on these perturbations is undesirable.

SUMMARY OF THE INVENTION

A system for incremental planning using a list based heuristic isdisclosed. The system includes a database storing supply chain entitydata and a server system coupled with the database. The server system isconfigured to receive demand for one or more end items from one or moreof the supply chain entities within a supply chain network and collapsethe supply chain network into one or more flowpaths for each of the oneor more end items. The server system is further configured to sort theone or more flowpaths based on one or more rules or parameters stored inthe database and reduce the one or more flowpaths using constraintsstored in the database. The server system is still further configuredgenerate a supply chain plan by solving the received demand using a listbased heuristic stored in the database and communicate the generatedsupply chain plan to the one or more supply chain entities.

A method providing incremental planning using a list based heuristic isdisclosed. The method provides for receiving demand for one or more enditems from one or more of the supply chain entities within a supplychain network and collapsing the supply chain network into one or moreflowpaths for each of the one or more end items. The method furtherprovides for sorting the one or more flowpaths based on one or morerules or parameters stored in the database and reducing the one or moreflowpaths using constraints stored in the database. The method stillfurther provides for generating a supply chain plan by solving thereceived demand using a list based heuristic stored in the database andcommunicating the generated supply chain plan to the one or more supplychain entities.

A computer-readable medium embodied with software enabling incrementalplanning using a list based heuristic is disclosed. Thecomputer-readable medium receives demand for one or more end items fromone or more of the supply chain entities within a supply chain networkand collapses the supply chain network into one or more flowpaths foreach of the one or more end items. The computer-readable medium furthersorts the one or more flowpaths based on one or more rules or parametersstored in the database and reduces the one or more flowpaths usingconstraints stored in the database. The computer-readable medium stillfurther generates a supply chain plan by solving the received demandusing a list based heuristic stored in the database and communicates thegenerated supply chain plan to the one or more supply chain entities.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. However, the invention itself, as well asa preferred mode of use, and further objectives and advantages thereof,will best be understood by reference to the following detaileddescription when read in conjunction with the accompanying drawings,wherein:

FIG. 1 illustrates an exemplary system according to a preferredembodiment;

FIG. 2 illustrates the supply chain planner of FIG. 1 in greater detailin accordance with the preferred embodiment;

FIG. 3 illustrates the supply chain network of FIG. 1 in greater detailin accordance with the preferred embodiment;

FIG. 4 illustrates an exemplary method for incremental planning using alist based heuristic; and

FIG. 5 illustrates an exemplary method for sentient optimization forcontinuous supply chain management.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made to the following detailed description of thepreferred and alternate embodiments. Those skilled in the art willrecognize that the present invention provides many inventive conceptsand novel features, that are merely illustrative, and are not to beconstrued as restrictive. Accordingly, the specific embodimentsdiscussed herein are given by way of example and do not limit the scopeof the present invention.

FIG. 1 illustrates an exemplary system 100 according to a preferredembodiment. System 100 comprises a supply chain planner 110, supplychain network 120, a network 130, and communication links 132 and 134a-134 n. Although a single supply chain planner 110, a single supplychain network 120, and a single network 130, are shown and described;embodiments contemplate any number of supply chain planners 110, anynumber of supply chain networks 120, and/or any number of networks 130,according to particular needs. In addition, or as an alternative, supplychain planner 110 may be integral to or separate from the hardwareand/or software of any one of the supply chain networks 120.

In one embodiment, supply chain network 120 includes one or more supplychain entities 120 a-120 n. As an example only and not by way oflimitation, one or more entities 120 a-120 n represents suppliers,manufacturers, distribution centers, retailers, and customers in supplychain network 120. A supplier may be any suitable entity that offers tosell or otherwise provides one or more materials to one or moremanufacturers. A manufacturer may be any suitable entity thatmanufactures at least one end item. A manufacturer may use one or morematerials during the manufacturing process to produce an end item. Inthis document, the phrase “end item” may refer to any manufactured,fabricated, assembled, or otherwise processed item or product. An enditem may represent an item ready to be supplied to, for example, anotherone of the one or more entities 120 a-120 n such as a supplier, an itemthat needs further processing, or any other item. A manufacturer may,for example, produce and sell an end item to a supplier, anothermanufacturer, a distribution center, a retailer, a customer, or anyother suitable person or entity. A distribution center may be anysuitable entity that offers to sell or otherwise distributes at leastone end item to one or more retailers or customers. A retailer may beany suitable entity that obtains one or more end items to sell to one ormore customers.

Although a suppliers, manufacturers, distribution centers, retailers,and customers are described as separate and distinct entities withinsupply chain network 120, the same person or entity can simultaneouslyact as a supplier, manufacturer, distribution center, retailer and/orcustomer. For example, one or more entities 120 a-120 n acting as amanufacturer could produce an end item, and the same entity could act asa supplier to supply a material to another manufacturer. In addition, oras an alternative, supply chain network 120 illustrates one examplesupply chain or operational environment of the invention. Otherenvironments and/or supply chains may be used without departing from thescope of the present invention.

In one embodiment, system 100 provides a supply chain plan thatdescribes the flow (i.e., paths or flowpaths) of one or more items orone or more end items, such as, for example, materials, products,components, and resources through supply chain network 120 or othersupply chain planning environments associated with system 100. Asdescribed below, supply chain planner 110 collapses supply chain network120 of FIG. 3 into one or more flowpaths to incrementally adjust thesupply chain plan using a list based heuristic.

In addition, or as an alternative, supply chain planner 110 alsoincrementally adjust the supply chain plan to a state of feasibilityand/or optimality due to perturbations (i.e., perturbations to planexecution data) in the supply chain plan inputs relative to a previoussupply chain planning session. For example, the perturbations in thesupply chain inputs may include, but are not limited to, newunforecasted orders, new orders, changes to existing orders orforecasts, changes to in-transit shipments, changes to work in progressor work in process, changes in inventory, new capacity, reducedcapacity, changes to external supply, and the like. In addition,according to one example, these perturbations (i.e., changes or events)may be classified into categories such as, for example, supply changes,inventory changes, capacity changes, demand changes, and the like.Although example categories of perturbations are described, embodimentscontemplate any type of perturbations, changes, events, or categories ofperturbations, changes, and/or events, according to particular needs.

In one embodiment, supply chain planner 110 is coupled with network 130using communications link 132, which may be any wireline, wireless, orother link suitable to support data communications between supply chainplanner 110 and network 130 during operation of system 100. One or moreentities 120 a-120 n in supply chain network 120 are coupled withnetwork 130 using communications links 134 a-134 n, which may be anywireline, wireless, or other link suitable to support datacommunications between supply chain network 120 and network 130 duringoperation of system 100. Although communication links 132 and 134 a-134n are shown as generally coupling supply chain planner 110 and supplychain network 120 to network 130, supply chain planner 110 and supplychain network 120 may communicate directly with each other, according toparticular needs.

In another embodiment, network 130 includes the Internet and anyappropriate local area networks (LANs), metropolitan area networks(MANS), or wide area networks (WANs) coupling supply chain planner 110and supply chain network 120. For example, data may be maintained bysupply chain planner 110 at one or more locations external to supplychain planner 110 and one or more entities 120 a-120 n of supply chainnetwork 120 and made available to one or more associated users of supplychain network 120 using network 130 or in any other appropriate manner.Those skilled in the art will recognize that the complete structure andoperation of communication network 130 and other components withinsystem 100 are not depicted or described. Embodiments may be employed inconjunction with known communications networks and other components.

FIG. 2 illustrates supply chain planner 110 of FIG. 1 in greater detailin accordance with the preferred embodiment. Supply chain planner 110comprises a computer 202, a server 210, a database 220, and workflows230. Server 210 comprises one or more planning engines 212 and one ormore solvers 214. Although server 210 is shown and described ascomprising one or more planning engines 212 and one or more solvers 214,embodiments contemplate any suitable engine, solver, or combination ofengines and/or solvers, according to particular needs.

Database 220 comprises one or more databases or other data storagearrangements at one or more locations, local to, or remote from, server210. Database 220 may be coupled with server 210 using one or more localarea networks (LANs), metropolitan area networks (MANs), wide areanetworks (WANs), network 130, such as, for example, the Internet, or anyother appropriate wire line, wireless, or other links. Database 220stores data that may be used by server 210. Database 220 includes, forexample, rules and parameters 222, constraints 224, policies 226, andplan data 228. Although database 220 is shown and described as includingrules and parameters 222, constraints 224, policies 226, and plan data228, embodiments contemplate any suitable information or data, accordingto particular needs.

In one embodiment, supply chain planner 110 operates on one or morecomputers 202 that are integral to or separate from the hardware and/orsoftware that support system 100. Computers 202 include any suitableinput device, such as a keypad, mouse, touch screen, microphone, orother device to input information. An output device conveys informationassociated with the operation of supply chain planner 110 and supplychain network 120, including digital or analog data, visual information,or audio information. Computers 202 include fixed or removablecomputer-readable storage media, such as, for example, magnetic computerdisks, CD-ROM, or other suitable media to receive output from andprovide input to system 100. Computers 202 include one or moreprocessors and associated memory to execute instructions and manipulateinformation according to the operation of system 100.

In one embodiment, the memory associated with one or more computers 202comprises any of a variety of data structures, arrangements, and/orcompilations configured to store and facilitate retrieval ofinformation. The memory may, for example, comprise one or more volatileor non-volatile memory devices. Although the memory is described asresiding within one or more computers 202, the memory may reside in anylocation or locations that are accessible by one or more computers 202or the one or more processors. The memory receives and storesinformation related to supply chain planning operations of system 100.The one or more processors, processes information stored in the memoryand performs supply chain planning operations for supply chain network120. The memory may store and the one or more processors may process anysuitable information to perform supply chain planning operations insystem 100.

Although a single computer 202 is shown in FIG. 2, supply chain planner110 and one or more entities 120 a-120 n of supply chain network 120 mayeach operate on separate computers 202 or may operate on one or moreshared computers 202. Each of these one or more computers 202 may be awork station, personal computer (PC), network computer, notebookcomputer, personal digital assistant (PDA), cell phone, telephone,wireless data port, or any other suitable computing device.

In an embodiment, one or more users may be associated with supply chainplanner 110 and/or one or more entities 120 a-120 n of supply chainnetwork 120. These one or more users may include, for example, a“planner” handling planning and/or one or more related tasks withinsystem 100. In addition, or as an alternative, these one or more userswithin system 100 may include, for example, one or more computers 202programmed to autonomously handle planning and/or one or more relatedtasks within system 100.

Server 210 may support one or more planning engines 212 which generatesupply chain plans based on inputs received from one or more plannersand/or database 220, as described more fully below. Plan data 328,within database 220, may include data representing supply chain plansgenerated by one or more planning engines 212 and may be used byplanners within system 100, according to particular needs. In general, aplanning cycle may include a supply chain planning session and a periodof time separating the supply chain planning session from a subsequentsupply chain planning session. Supply chain planner 110, and inparticular, server 210, stores and/or accesses various rules,parameters, constraints, policies, planning data, flowpaths, flowpathlists, and workflows associated with supply chain network 120.

As discussed above, supply chain planner 110 collapses supply chainnetwork 120 into one or more flowpaths to incrementally adjust thesupply chain plan using a list based heuristic. In addition, asdiscussed above, supply chain planner 110 may incrementally adjust thesupply chain plan, during the period of time separating the supply chainplanning sessions to a state of feasibility and/or optimality due toperturbations (i.e., perturbations to plan execution data) in the supplychain plan inputs relative to a previous supply chain planning session.In addition, as discussed above, these perturbations may be classifiedinto categories, wherein each category of change may include a libraryof rules and parameters 222 and policies 326 for inducing differentbehavior based on the perturbations.

In one embodiment, one or more planning engines 212 generates one ormore flowpaths, supply pictures, and demand pictures to incrementallyadjust the supply chain plan. In another embodiment, one or moreplanning engines 212 generate one or more workflows 230 to incrementallyand optimally adjust the supply chain plan. As an example only and notby way of limitation, workflows 230 include, a planning in incrementswith time advance workflow, a planning in increments with no timeadvance workflow, and/or any other suitable workflow that incrementallyadjusts the supply chain plan to a state of feasibility and/oroptimality due to perturbations in the supply chain plan inputs.

The planning in increments with time advance workflow may be invoked toevaluate or prescribe perturbations as a result of execution changesrelative to a previous supply chain plan. In addition, or as analternative, the planning in increments with time advance workflow isinvoked where the perturbations (i.e., changes in demand, supply,inventory, and the like) occur during the period of time separating thesupply chain planning sessions. The effect of these perturbations issuperimposed on the previous supply chain plan to generate a new supplychain plan (i.e., an incremental adjustment of the previous supply chainplan). That is, the perturbations (i.e., changes in demand, supply,inventory, and the like) and the planning data associated with aprevious supply chain plan are reconciled, to generate a new supplychain plan.

The planning in increments with no time advance workflow may be invokedto evaluate incremental changes which occur during the period of timeseparating the supply chain planning sessions, in situ. That is, a userassociated with supply chain network 120 may consider the effect ofdifferent changes or events on an existing supply chain plan, such as,for example, during a what-if situation. Although examples of workflows230 are described, workflows 230 may include any suitable workflow thatincrementally adjusts the supply chain plan to a state of feasibilityand/or optimality due to perturbations in the supply chain plan inputsduring the period of time separating the supply chain planning sessions.

In one embodiment, one or more solvers 312 solve a limited cluster ofproblems associated with the perturbations in the supply chain inputsrelative to the previous supply chain planning session. That is, eachsolver within each of the one or more solvers 312 focuses on only onekind of change or event that occurs during the period of time separatingthe supply chain planning sessions. In addition, or as an alternative,the actions taken by one or more solvers 312 with respect to the changeor event may be dependent on that particular change or event. Forexample, if a user associated with one or more entities 120 a-120 n ofsupply chain network 120 cancels an order, then one or more solvers 312may take actions that are dependent on the canceling of an order, andmay be, for example, different from actions taken if the user associatedwith supply chain network 120 places a larger order for the same item orproduct. In essence, the action taken by one or more solvers 312 isdependent on the kind of change one or more solvers 312 is ameliorating.

In addition, one or more solvers 312 may include incremental planningsolvers, such as, for example, a manufacturing planning solver, adistribution planning solver, an order planning solver, and any othersolver. Although examples of one or more solvers 312 are described, oneor more solvers 312 may include any suitable solver that solves any typeof perturbations in the supply chain inputs.

In one embodiment, constraints 324 restrict the feasibility and/oroptimization of a supply chain plan. As described more fully below,constraints 324 may be either hard constraints or soft constraints.Constraints 324 may be automatically generated in response to rules andparameters 222 and policies 326 stored in database 220, or constraints324 may be created or modified in response to input received fromperturbations in the supply chain plan inputs. In addition, constraints324 may include additional constraints and/or additional sets ofconstraints, in order to preserve part of a previous supply chain plangenerated during the previous supply chain planning session.

To further explain the operation of supply chain planner 110, an exampleis now given. In the following example, entity 120 a of supply chainnetwork 120 of FIG. 1 is a distributor of three products. Entity 120 aoutsources the manufacturing of the three products to two factories(i.e., in this example, entity 120 b and 120 c of supply chain network120 of FIG. 1). Entity 120 b has a capacity constraint of 4,000 unitsand entity 120 c has a capacity constraint of 3,000 units. In addition,each of the three products, in this example, may be manufactured ateither factory, that is, either entity 120 b or 120 c. However, theprofit entity 120 a may realize by manufacturing the three products atentity 120 b or 120 c is substantially different.

Continuing with this example, the demand for the first product is 1,000units, the demand for the second product is 3,000 units, and the demandfor the third product is 2,000 units. In addition, in this example, theprofit for manufacturing the first product at entity 120 b is $45 andthe profit for manufacturing the first product at entity 120 c is only$30. The profit for manufacturing the second product at entity 120 b is$10 and the profit for manufacturing the second product at entity 120 cis only $5. The profit for manufacturing the third product at entity 120b is $5 and the profit for manufacturing the first product at entity 120c is only $1.

Server 210 generates a supply chain plan, during a scheduled supplychain planning session, based on, at least the rules and parameters,constraints, policies, and plan data associated with this particularexample and described above. The supply chain plan generated by server210, in this example, may be such that profit is maximized and 1,000units of the first product are to be manufactured at entity 120 b, withan expected profit of $45,000, 3,000 units of the second product are tobe manufactured at entity 120 b, with an expected profit of $30,000, and2,000 units of the third product are to be manufactured at entity 120 c,with an expected profit of $10,000.

However, subsequent to the generation of the supply chain plan andduring a period of time separating the supply chain planning sessionfrom a subsequent supply chain planning session, supply chain planner110 receives a new order, increasing the demand for the first product by500 units, that is, for a total demand of 1,500 units for the firstproduct. In this example, the perturbation (i.e., the new order) may beclassified into the category of “demand change”, which as discussedabove, may include a library of rules and parameters 222 and policies326 for inducing the behavior based on the perturbation of the category“demand change”. Supply chain planner 110 may incrementally andoptimally adjust the supply chain plan to manufacture the new order(i.e., the additional demand for 500 units of the first product), atentity 120 c, if, for example, the rules and parameters 222 and policies326 prevent any changes to the capacity constraint associated withentity 120 b.

Continuing with this example and subsequent to the incremental andoptimal adjustment of the supply chain plan during the period of timeseparating the supply chain planning sessions, supply chain planner 110receives another perturbation in the supply chain inputs. Thisperturbation is a notification that a particular regulation requiresthat the entirety of the first product must be manufactured in the samefactory (i.e., entity 120 b). However, based on this new perturbation inthe supply chain input, the incremental adjustment of the supply chainplan, previously conducted, is no longer viable. That is, because thisnew perturbation requires that the entirety of the first product must bemanufactured in the same factory (i.e., entity 120 b) the additionaldemand for 500 units of the first product cannot be manufactured atentity 120 c.

Although, as discussed above, constraints 324 may be either hardconstraints or soft constraints. That is, in this example, the capacityconstraint of 4,000 units associated with entity 120 b may either be ahard constraint or a soft constraint as a matter of policy, judgment,and/or circumstances. In this example, supply chain planner 110 maycommunicate with entity 120 b, or a user associated with entity 120 b todetermine if the capacity constraint of 4,000 units is a hard constraintor a soft constraint. Thereafter, supply chain planner 110 mayincrementally and optimally adjust the supply chain plan to manufacturethe new order (i.e., the additional demand for 500 units of the firstproduct), at entity 120 b, if, for example, the capacity constraintassociated with entity 120 b is a soft constraint or at least is a hardconstraint that may be modified (i.e., maybe not a physical hardconstraint).

FIG. 3 illustrates supply chain network 120 of FIG. 1 in greater detailin accordance with an exemplary embodiment. Supply chain network 120comprises entities within the supply chain, such as, for example,supplier 310 a, supplier 310 b, manufacturer 310 c, and distributioncenter 310 d. For ease of illustration, supply chain network 120 of FIG.1 is shown as four entities in FIG. 3: supplier 310 a; supplier 310 b;manufacturer 310 c; and distribution center 310 d, which correspond to,for example, entities 120 a-120 d of FIG. 1, respectively. In addition,although supply chain network 120 is shown and described as comprisingsuppliers 310 a and 310 b, manufacturer 310 c, and distribution center310 d, embodiments contemplate any suitable supply chain entity orcombination of entities, according to particular needs.

In one embodiment, manufacturer 310 c includes routings 320, 322, and324, operations 320 a, 322 a, and 324 a and resources 326 and 328.Routings 320, 322, and 324 may represent one or more structures orapparatuses configured to receive one or more components (material) 312,314, and 316 and perform at least one operation to transform thecomponents 312, 314, and 316 into one or more end items 350, 352, and354. In a particular embodiment, suppliers 310 a and 310 b providecomponents 312, 314, and 316 to routings 320, 322, and 324, and routings320, 322, and 324 produce end items 350, 352, and 354 using operations320 a, 322 a, and 324 a and resources 326 and 328. For example, supplier310 a ships component 312 to routings 320 of manufacturer 310 c, androutings 320 produces a first end item 350 using operation 320 a andresource 326. In addition, supplier 310 a may, at a later time, during,for example, another time bucket; begin shipping different component 312to routings 320 of manufacturer 310 c, to produce a second end item 350.Although components 312, 314, and 316 are shown and described,embodiments contemplate any number of components or any combination ofcomponents, without departing from the scope of the present invention.

To further explain the operation of supply chain network 120 of FIG. 3,an example is now given. In the following example, end items 350, 352,and 354 are available to satisfy orders (demand) at distribution center310 d. Although a particular number of end items are shown anddescribed, embodiments contemplate any number of end items, according toparticular needs. In addition, each of end items 350, 352, and 354 areshipped to distribution center 310 d from manufacturer 310 c via routes330 a, 332 a, and 334 a. In this example, shipping time 330 b, 332 b,and 334 b between manufacturer 310 c and distribution center 310 d is 1week. Although a particular shipping time is shown and described,embodiments contemplate any suitable shipping time.

Continuing with this example, end item 350 is produced along routing320, using operation 320 a, which consumes resource 326, and component312. End item 352 is produced along routing 322, using operation 322 a,which consumes resource 326, and components 312 and 314. End Item 354 isproduced along routing 324, using operation 324 a, which consumesresource 328, and components 314 and 316. Supplier 310 a shipscomponents 312, 314, and 316 to manufacturer 310 c via routes 312 a, 314a, and 316 a. The shipping time 312 b, 314 b, and 316 b in this example,between supplier 310 a and manufacturer 310 c is 1 week. Supplier 310 bis a secondary supplier for component 316 and ships component 316 tomanufacturer 310 c via route 316 c. In addition, in this example, theshipping time 316 d, between supplier 310 b and manufacturer 310 c isalso 1 week. Although a particular shipping time is shown and described,embodiments contemplate any suitable shipping time.

In one embodiment supply chain planner 110 collapses supply chainnetwork 120 of FIG. 3 into one or more flowpaths and stores the one ormore flowpaths in plan data 228 of database 220. In addition, or as analternative, supply chain planner 110 loads the one or more flowpathsinto memory only in the context of demand. For example, when supplychain planner 110 receives a demand for end item 350, the demand can besatisfied by flowpaths or time buckets (i.e., various options), withinsupply chain network 120. That is, the demand can be satisfied from theinventory at distribution center 310 d, from the inventory at end itembuffers 330, 332, and 334 of manufacturer 310 c, it can be produced atmanufacturer 310 c consuming resource 326 and 328 and components 312,314, and 316, or it can be sourced from suppliers 310 a and 310 b andproduced at manufacturer 310 c.

In one embodiment, supply chain planner 110 collapses supply chainnetwork 120 into flowpaths that comprise all of the end nodes from whichconsumption occurs. As an example only and not by way of limitation,supply chain planner 110 collapses supply chain network 120 into fourflowpaths for end item 350, shown below in TABLE 1. Although, aparticular number of flowpaths are shown and described for end item 350;embodiments contemplate any number of flowpaths, without departing fromthe scope of the present invention.

TABLE 1 FP Element 1 end item 350 @ distribution center 310d 2 end item350 @ manufacturer 310c 3 component 312 @ manufacturer 310c resource 326@ manufacturer 310c 4 component 312 @ supplier 310a resource 326 @manufacturer 310c

As shown in TABLE 1, flowpaths (FP's) 1 and 2 each have one element,while flowpaths 3 and 4 each have 2 elements. That is, there issupply/capacity available for both the elements of flowpaths 3 and 4. Inaddition, the consumption from the two elements of flowpaths 3 and 4 canoccur in different time buckets. For example, as shown in FIG. 3,shipping time 312 b is 1 week for component 312 to reach manufacturer310 c, via route 312 a, to produce end item 350. That is, theconsumption of component 312 at supplier 310 a (flowpath 4—component 312@ supplier 310 a) occurs in a different time bucket than consumption ofresource 326 at manufacturer 310 c (flowpath 4—resource 326 @manufacturer 310 c).

Supply chain planner 110 further collapses supply chain network 120 intosix flowpaths for end item 352, shown below in TABLE 2. Although, aparticular number of flowpaths are shown and described for end item 352;embodiments contemplate any number of flowpaths, according to particularneeds.

TABLE 2 FP Element Element Element 1 end item 352 @ distribution center310d 2 end item 352 @ manufacturer 310c 3 component 312 @ component 314@ resource 326 @ manufacturer 310c manufacturer 310c manufacturer 310c 4component 312 @ component 314 @ resource 326 @ supplier 310amanufacturer 310c manufacturer 310c 5 component 312 @ component 314 @resource 326 @ manufacturer 310c supplier 310a manufacturer 310c 6component 312 @ component 314 @ resource 326 @ supplier 310a supplier310a manufacturer 310c

Furthermore, supply chain planner 110 collapses supply chain network 120into eight flowpaths for end item 354, shown below in Table 3. Although,a particular number of flowpaths are shown and described for end item354; embodiments contemplate any number of flowpaths, according toparticular needs.

TABLE 3 FP Element Element 1 end item 354 @ distribution center 310d 2end item 354 @ manufacturer 310c 3 component 314 @ manufacturercomponent 316 @ manufacturer 310c 310c 4 component 314 @ manufacturercomponent 316 @ supplier 310a 310c 5 component 314 @ supplier 310acomponent 316 @ manufacturer 310c 6 component 314 @ manufacturercomponent 316 @ supplier 310b 310c 7 component 314 @ supplier 310acomponent 316 @ supplier 310a 8 component 314 @ supplier 310a component316 @ supplier 310b

In one embodiment, supply chain planner 110 determines and sorts theorder of the flowpaths (i.e., flowpaths 1, 2, 3, 4, etc.) using one ormore business rules stored in rules and parameters 222 of database 220.As shown above, the flowpaths are sorted based on the priority, whichmay be predetermined by supply chain planner 110 or determined by rulesand parameters 222 stored in database 220. Although a particular orderof the flowpaths is shown and described, embodiments contemplate anysuitable order of the flowpaths, according to particular needs.

In one embodiment, supply chain planner 110 applies one or more pruningtechniques stored in rules and parameters 222 of database 220 to reducethe number of generated flowpaths. For example, when supply chainplanner 110 receives a demand for end item 350 for a particular timebucket, supply chain planner 110 prunes out various flowpaths based on,for example, lead-time constraints stored in constraints 224 of database220. As an example only, and not by way of limitation, TABLE 4 lists theflowpaths available to satisfy a demand in a particular week for enditem 350. In addition, or as an alternative, TABLE 4 shows a timebucket-wise walk pattern ensuring consumption in a time bucket closestto the received demand, in for example, a just-in-time consumption. Inaddition, the walking of the time buckets may be reversed, filtered orsorted as per one or more business rules stored in rules and parameters222 of database 220.

TABLE 4 Demand in Week 1 1 end item 350 @ distribution center 310d Wk 1Demand in Week 2 1 end item 350 @ distribution center 310d Wk 2 Wk 1 2end item 350 @ manufacturer 310c Wk 1 Demand in Week 3 1 end item 350 @distribution center 310d Wk 3 Wk 2 Wk 1 2 end item 350 @ manufacturer310c Wk 2 Wk 1 3 component 312 @ manufacturer 310c Wk 1 3 resource 326 @manufacturer 310c Wk 1 Demand in Week 4 1 end item 350 @ distributioncenter 310d Wk 4 Wk 3 Wk 2 Wk 1 2 end item 350 @ manufacturer 310c Wk 3Wk 2 Wk 1 3 component 312 @ manufacturer 310c Wk 2 Wk 1 Wk 1 3 resource326 @ manufacturer 310c Wk 2 Wk 2 Wk 1 4 component 312 @ supplier 310aWk 1 4 resource 326 @ manufacturer 310c Wk 2 Demand in Week 5 1 end item350 @ distribution center 310d Wk 5 Wk 4 Wk 3 Wk 2 Wk 1 2 end item 350 @manufacturer 310c Wk 4 Wk 3 Wk 2 Wk 1 3 component 312 @ manufacturer310c Wk 3 Wk 2 Wk 1 Wk 2 Wk 1 Wk 1 3 resource 326 @ manufacturer 310c Wk3 Wk 3 Wk 3 Wk 2 Wk 2 Wk 1 4 component 312 @ supplier 310a Wk 2 Wk 1 Wk1 4 resource 326 @ manufacturer 310c Wk 3 Wk 3 Wk 2

As shown in TABLE 4, flowpath1 is available to satisfy a demand inweek1, that is, the on-hand for end item 350 @ distribution center 310 d(end item 350 at distribution center 310 d) will be consumed. Flowpath2is available to satisfy a demand in week2, that is consumption can befrom end item 350 @ distribution center 310 d in the current time bucket(week2) or the previous time bucket (week1) or consumption can be fromflowpath2 which is end item 350 @ manufacturer 310 c (end item 350 atmanufacturer 310 c). In this example, there is supply for end item 350at end item buffer 330 of manufacturer 310 c in week1.

In another embodiment, supply chain planner 110 increases the number offlowpaths for each alternate fork in supply chain network 120. Forexample, if the number of manufacturers to produce an end item increasesor the number of suppliers increases, the number of flowpaths generatedby supply chain planner 110 also increases. That is, in this example, ifanother manufacturer or supplier is provided for end item 350, thensupply chain planner 110 doubles the number of flowpaths from four toeight.

As an example only, and not by way of limitation, supply chain planner110 prunes (i.e., removes) any time bucket(s) that do not have supply orcapacity, as shown below in TABLE 5. For example, with respect to thedemand in week5 of TABLE 4, if the capacity of resource 326 in week3 iszero, then supply chain planner 110 prunes the flowpaths for the demandin week5 to the following:

TABLE 5 Demand in Week 5 1 end item 350 @ Wk 5 Wk 4 Wk 3 Wk 2 Wk 1distribution center 310d 2 end item 350 @ Wk 4 Wk 3 Wk 2 Wk 1manufacturer 310c 3 component 312 @

Wk 2 Wk 1 Wk 1 manufacturer 310c 3 resource 326 @

Wk 2 Wk 2 Wk 1 manufacturer 310c 4 component 312 @

Wk 1 supplier 310a 4 resource 326 @

Wk 2 manufacturer 310c

In addition, with respect to the demand in week5 of TABLE 4, if thesupply availability of component 312 in manufacturer 310 c is zero in,for example, week2, then supply chain planner 110 prunes the flowpathsfor the demand in week5 of TABLE 5 to the following:

TABLE 6 Demand in Week 5 1 end item 350 @ Wk 5 Wk 4 Wk 3 Wk 2 Wk 1distribution center 310d 2 end item 350 @ Wk 4 Wk 3

Wk 1 manufacturer 310c 3 component 312 @

Wk 1 Wk 1 manufacturer 310c 3 resource 326 @

Wk 2 Wk 1 manufacturer 310c 4 component 312 @

Wk 1 supplier 310a 4 resource 326 @

Wk 2 manufacturer 310c

In addition, or as an alternative, supply chain planner 110 stores thesupply and capacity picture with its time bucketized availability(supply-consumption), as a Fact table in database 220. Supply chainplanner 110 updates the fact table as consumption occurs and when theavailability reaches zero the list is further pruned out.

In one embodiment, supply chain planner 110 generates a supply picture(TABLE 7), which shows, for example, which time bucket the supply isreceived. Supply chain planner 110 stores the supply chain picture inplan data 228 of database 220. For example, if one or more upstreamcomponents 312, 314, or 316 is shipped from supplier 310 a or 310 b tomanufacturer 310 c, then the one or more components 312, 314, or 316show up as supply at the supplier 310 a, supplier 310 b or at themanufacturer 310 c.

TABLE 7 On Hand/ Entity Item/Resource Week Supply/Capacity distributioncenter 310d end item 350 Wk 1 20 distribution center 310d end item 352Wk 1 20 distribution center 310d end item 354 Wk 1 20 manufacturer 310cend item 350 Wk 1 10 manufacturer 310c end item 352 Wk 1 10 manufacturer310c end item 354 Wk 1 10 manufacturer 310c component 312 Wk 1 30manufacturer 310c component 314 Wk 1 60 manufacturer 310c component 316Wk 1 30 supplier 310a component 312 Wk 1 30 supplier 310a component 312Wk 2 5 supplier 310a component 312 Wk 3 5 supplier 310a component 312 Wk4 5 supplier 310a component 312 Wk 5 5 supplier 310a component 314 Wk 160 supplier 310a component 314 Wk 2 5 supplier 310a component 314 Wk 3 5supplier 310a component 314 Wk 4 5 supplier 310a component 314 Wk 5 5supplier 310a component 316 Wk 1 30 supplier 310a component 316 Wk 2 5supplier 310a component 316 Wk 3 5 supplier 310a component 316 Wk 4 5supplier 310a component 316 Wk 5 5 supplier 310b component 316 Wk 1 30supplier 310b component 316 Wk 2 5 supplier 310b component 316 Wk 3 5supplier 310b component 316 Wk 4 5 supplier 310b component 316 Wk 5 5manufacturer 310c resource 326 Wk 1 30 manufacturer 310c resource 326 Wk2 30 manufacturer 310c resource 326 Wk 3 30 manufacturer 310c resource326 Wk 4 30 manufacturer 310c resource 326 Wk 5 30 manufacturer 310cresource 328 Wk 1 10 manufacturer 310c resource 328 Wk 2 10 manufacturer310c resource 328 Wk 3 10 manufacturer 310c resource 328 Wk 4 10manufacturer 310c resource 328 Wk 5 10

In another embodiment, supply chain planner 110 generates a demandpicture (TABLE 8), which shows demand (i.e., orders or nettedforecasts). Supply chain planner 110 stores the demand picture in plandata 228 of database 220. In addition, supply chain planner 110 mayprioritize the demand picture using one or more business rules stored inrules and parameters 222 of database 220.

TABLE 8 De- Busi- mand/ ness Fore- Entity Sales_Model Unit Line Weekcast distribution center 310d end item 350 BU1 L1 Wk 1 15 distributioncenter 310d end item 350 BU1 L1 Wk 2 15 distribution center 310d enditem 350 BU1 L1 Wk 3 15 distribution center 310d end item 350 BU1 L1 Wk4 15 distribution center 310d end item 350 BU1 L1 Wk 5 15 distributioncenter 310d end item 352 BU2 L1 Wk 1 15 distribution center 310d enditem 352 BU2 L1 Wk 2 15 distribution center 310d end item 352 BU2 L1 Wk3 15 distribution center 310d end item 352 BU2 L1 Wk 4 15 distributioncenter 310d end item 352 BU2 L1 Wk 5 15 distribution center 310d enditem 354 BU2 L2 Wk 1 10 distribution center 310d end item 354 BU2 L2 Wk2 10 distribution center 310d end item 354 BU2 L2 Wk 3 10 distributioncenter 310d end item 354 BU2 L2 Wk 4 10 distribution center 310d enditem 354 BU2 L2 Wk 5 10

In one embodiment, supply chain planner 110 uses a list based heuristicto consume demand, which is configurable and extendible as per, forexample, one or more business requirements stored in rules andparameters 222 of database 220 or business constraints stored inconstraints 224 of database 220. In addition, or as an alternative,supply chain planner 110 uses the list based heuristic to walk theflowpath list in some order, walk the time buckets in some order, andconsume and store the information. In addition, or as an alternative,based on the business objective stored in rules and parameters 222 ofdatabase 220, supply chain planner 110, sorts the flowpath lists by, forexample, changing the consumption pattern.

In one embodiment, supply chain planner 110 solves the demands, in forexample, a just-in-time based consumption pattern:

For each time bucket; assume ordering of first to last time bucket. Foreach demand; assume ordering of highest priority to least priority Getits flowpath list For each flowpath element; as per the ordering Gettime bucket list; consume in a just-in-time pattern (i.e., walk back intime)

In another embodiment, supply chain planner 110 solves the demands, byfor example, consuming actual on-hand first, and then in a just-in-timebased consumption pattern:

For each time bucket; choose from first to last. For each demand; choosedemand from highest priority to least priority Get its flowpath list Foreach flowpath element; as per the ordering Get time bucket list; Consumefrom current time bucket first Consume in a just-in-time pattern (i.e.,walk back in time)

Although exemplary list based heuristics are shown and described,embodiments contemplate any heuristic or combination of heuristics forsolving the demands. In addition, or as an alternative, supply chainplanner 110 may short or satisfy late the demand, based on one or morebusiness requirements stored in rules and parameters 222 of database220. For example, supply chain planner 110 may satisfy late a demand by,for example, considering the flowpaths and time buckets that becomeavailable if the unsatisfied portion of the demand was pushed to thenext time bucket.

Continuing with this example, supply chain planner 110 generates andstores commit against the demand data in plan data 228 of database 220,as shown in TABLE 9.

TABLE 9 Business Entity Item Unit Line Week Demand Commit distributioncenter 310d end item 350 BU1 L1 Wk 1 15 15 distribution center 310d enditem 350 BU1 L1 Wk 2 15 15 distribution center 310d end item 350 BU1 L1Wk 3 15 15 distribution center 310d end item 350 BU1 L1 Wk 4 15 15distribution center 310d end item 350 BU1 L1 Wk 5 15 5 distributioncenter 310d end item 352 BU2 L1 Wk 1 15 15 distribution center 310d enditem 352 BU2 L1 Wk 2 15 15 distribution center 310d end item 352 BU2 L1Wk 3 15 15 distribution center 310d end item 352 BU2 L1 Wk 4 15 15distribution center 310d end item 352 BU2 L1 Wk 5 15 0 distributioncenter 310d end item 354 BU2 L2 Wk 1 10 10 distribution center 310d enditem 354 BU2 L2 Wk 2 10 10 distribution center 310d end item 354 BU2 L2Wk 3 10 10 distribution center 310d end item 354 BU2 L2 Wk 4 10 10distribution center 310d end item 354 BU2 L2 Wk 5 10 10

In addition, supply chain planner 110 generates and storesDemand-Consumption Map data in plan data 228 of database 220, as shownin TABLE 10:

TABLE 10 Cons. Demand Buffer Cons. in Week Demand Qty in Week end item350 @ distribution center 310d 15 Wk 1 end item 350 15 Wk 1 end item 350@ distribution center 310d 5 Wk 1 end item 350 15 Wk 2 end item 352 @distribution center 310d 15 Wk 1 end item 352 15 Wk 1 end item 352 @distribution center 310d 5 Wk 1 end item 352 15 Wk 2 end item 354 @distribution center 310d 10 Wk 1 end item 354 10 Wk 1 end item 354 @distribution center 310d 10 Wk 1 end item 354 10 Wk 2 end item 350 @manufacturer 310c 10 Wk 1 end item 350 15 Wk 2 end item 352 @manufacturer 310c 10 Wk 1 end item 352 15 Wk 2 end item 354 @manufacturer 310c 10 Wk 1 end item 354 10 Wk 3 component 312 @manufacturer 310c 15 Wk 1 end item 350 15 Wk 3 component 312 @manufacturer 310c 15 Wk 1 end item 352 15 Wk 3 component 314 @manufacturer 310c 15 Wk 1 end item 352 15 Wk 3 component 314 @manufacturer 310c 15 Wk 1 end item 352 15 Wk 4 component 314 @manufacturer 310c 10 Wk 1 end item 354 10 Wk 4 component 314 @manufacturer 310c 10 Wk 1 end item 354 10 Wk 4 component 316 @manufacturer 310c 10 Wk 1 end item 354 10 Wk 4 component 316 @manufacturer 310c 10 Wk 1 end item 354 10 Wk 5 component 312 @ supplier310a 15 Wk 1 end item 350 15 Wk 4 component 312 @ supplier 310a 15 Wk 1end item 352 15 Wk 4 component 312 @ supplier 310a 5 Wk 2 end item 35015 Wk 5 component 314 @ supplier 310a component 316 @ supplier 310acomponent 316 @ supplier 310b resource 326 @ manufacturer 310c 15 Wk 1end item 350 15 Wk 3 resource 326 @ manufacturer 310c 15 Wk 1 end item352 15 Wk 3 resource 326 @ manufacturer 310c 15 Wk 2 end item 350 15 Wk4 resource 326 @ manufacturer 310c 15 Wk 2 end item 352 15 Wk 4 resource326 @ manufacturer 310c 5 Wk 3 end item 350 15 Wk 5 resource 328 @manufacturer 310c 10 Wk 2 end item 354 Wk 4 resource 328 @ manufacturer310c 10 Wk 3 end item 354 Wk 5 N/A N/A end item 352 15 Wk 5

In one embodiment, supply chain planner 110 communicates the generatedsupply chain plan, to one or more users of supply chain network 120either graphically and/or in tabular form. In one embodiment, supplychain planner 110 communicates the demands, the supply, consumption,availability picture for material and capacity and thedemand-consumption map. In addition, or as an alternative, if any changein supply, capacity or demand occurs, then supply chain planner 110triggers the list based heuristic to solve for the change using one ormore solvers 214.

As an example only and not by way of limitation, if an increase indemand occurs, supply chain planner 110 solves for the increase indemand using one or more solvers 214. If the demand is unsatisfied, thensupply chain planner 110 highlights the constraints and the relateddemands so that supply chain planner can plan a supply chain plan on topof the current supply chain plan. If the demand decreases, then supplychain planner 110 determines whether to free up supply and/or capacityand whether to re-plan shorted or late-ed demand. If the supply and/orcapacity is increased, then supply chain planner 110 determines whetherto make more supply and/or capacity available and whether to re-planshorted or late-ed demand. If the supply and/or capacity decreases, thensupply chain planner 110 solves for the decreased material supply and/orresource capacity using one or more solvers 214 and to identify theaffected demand and to reduce the commit value of the affected demandsand to re-plan the affected demands again.

In one embodiment, supply chain planner 110 applies a filteringtechnique stored in rules and parameters 222 of database 220 to filterthe flowpaths and time buckets. For example, supply chain planner 110filters in or out one or more locations used to satisfy a demand byselecting the manufacturers that are to plan the demand in or in thealternative, leave out the manufacturers that do not want the items inthe demand to be made from, select or de-select the suppliers, andselect or de-select the distribution centers. In addition, or as analternative, supply chain planner 110 filters in or out one or moreresources to satisfy a demand by selecting or de-selecting one or moreresources to be used or not to be used, an selecting or de-selecting oneor more routings. In addition, supply chain planner 110 filters one ormore time buckets by determining how far back to explore the supplyand/or capacity to satisfy the demand and filtering the in and/or outtime buckets.

In one embodiment, generation of a production plan, procurement plan,and/or a distribution plan is a post-consumption exercise. As an exampleonly, and not by way of limitation, if demand for 10 units of end item350 in week 4 was satisfied by consuming the following:

TABLE 11 Consumption in Week component 312 @ supplier 310a Wk 1 resource326 @ manufacturer 310c Wk 2

Which means the following:

-   -   1. 10 units of component 312 were shipped in week1 from supplier        310 a to manufacturer 310 c. Component 312 reached manufacturer        310 c in week2. Based on this, supply chain planner 110 will        generate a distribution plan record.    -   2. 10 units of component 312 and resource 326 were consumed in        week2 to produce end item 350 in manufacturer 310 c. Based on        this, supply chain planner 110 will generate in a production        plan record.    -   3. 10 units of end item 350 were shipped from manufacturer 310 c        to distribution center 310 d. Arrival at distribution center 310        d is in week3. Based on this, supply chain planner 110 will        generate a distribution plan record.    -   4. The demand is satisfied in week4. This means 1 week of        inventory carrying. This can be used to generate inventory        profile.

In one embodiment, supply chain planner 110 incrementally adjusts thesupply chain plan based on one or more lot-sizing constraints stored inconstraints 224 of database 220. As an example only, and not by way oflimitation, if 10 units of component 312 @ supplier 310 a need to beconsumed in week3. Then components 312 will be shipped and will arriveat supplier 310 a in week4. However, if, based on lot-sizingconstraints, shipments can only be done in lot-sizes of 20, thenconsumption of 20 units from component 312 @ supplier 310 a occurs inweek3 and there will be a supply of 10 units in component 312 @manufacturer 310 c in week4. The latter accounts for the excess of 10units in component 312 @ manufacturer 310 c caused by lot-sizingconstraints. In addition or as an alternative, supply chain planner 110updates the supply picture in database 220.

In another embodiment, supply chain planner 110 accounts for time basedsafety stock by adding to the lead time while determining the valid timebuckets to consume from. For example, the lead time equals the sum ofall the distribution and manufacturing lead times plus all the weeks ofcover required for a particular buffer and the downstream buffers.

As an example only and not by way of limitation, supply chain network120 may also comprise three additional locations, such as, for example,a retailer, a warehouse, and another distribution center. In thisexample, item flow from the distribution center to the warehouse to theretailer and it takes 1 week to move the items between the locations.Although a particular time has been described, embodiments contemplateany suitable time. In addition, in this example, there is a 1 weeksafety stock cover at the warehouse, and a 2 week cover at thedistribution center. Although a particular time has been describedregarding the safety stock cover, embodiments contemplate any suitabletime.

Continuing with this example, if a demand for 10 units is received inweek6 at the retailer, then it can be satisfied from the retailer. Inaddition, or as an alternative, it can be satisfied from the warehouseby consuming 10 units in week 7. In one embodiment, this may becalculated by subtracting the lead time of 1 week and safety stock coverof 2 weeks from the demand week. It addition, it can be satisfied fromthe distribution center by consuming 10 units in week 5. This iscalculated by subtracting the lead times of 1+1 week and safety stockcover of 2+1 weeks from the actual demand week (i.e., 10−2−3=5).

FIG. 4 illustrates an exemplary method 400 for incremental planningusing a list based heuristic. The method begins at step 402, wheresupply chain planner 110 receives a demand for an end item from, forexample, one or more customers or other entities within supply chainnetwork 120. At step 404, supply chain planner 110 collapses a supplychain network into one or more flowpaths for an end item and stores thegenerated flowpaths in database 220. As discussed above, when supplychain planner 110 receives a demand on, for example, end item 350, thedemand can be satisfied by various options (i.e., flowpaths). In theabove example, the demand can be satisfied from the inventory atdistribution center 310 d, or from the inventory at end item buffers330, 332, and 334 of manufacturer 310 c, or it can be produced atmanufacturer 310 c consuming resource 326 and 328 and components 312,314, and 316, or it can be sourced from suppliers 310 a and 310 b andproduced at manufacturer 310 c.

At step 406, supply chain planner 110 determines if there is another enditem that has an associated demand. If there is an additional end item,the method proceeds to step 404, otherwise the method proceeds to step408. At step 408, supply chain planner 110 determines the order of thegenerated flowpaths (i.e., flowpaths 1, 2, 3, 4, etc.) by one or morebusiness rules stored in database 220 (i.e., a sort). As discussedabove, the flowpaths may be sorted based on the priority, which isdetermined by rules and parameters 222 stored in database 220. Inaddition, as discussed above, although a particular order of theflowpaths is shown and described, embodiments contemplate any suitableorder of the flowpaths, according to particular needs.

At step 410, supply chain planner 110 applies one or more pruningtechniques stored in rules and parameters 222 of database 220 to reducethe number of generated flowpaths. As discussed above, when supply chainplanner 110 receives a demand for a particular end item for a particulartime bucket, supply chain planner 110 prunes out various flowpaths basedon, for example, various constraints stored in constraints 224 ofdatabase 220. In addition, or as an alternative, supply chain planner110 prunes (i.e., removes) any time bucket(s) that do not have supplyand/or capacity. At step 412, supply chain planner 110 stores the timebucket ordered list along with the flowpaths.

At step 414, supply chain planner 110 generates and stores a supplypicture, which shows, for example, which time bucket the supply isreceived into database 220. At step 416, supply chain planner 110generates and stores a demand picture, which shows demand (i.e., ordersor netted forecasts) into database 220. In addition, as discussed above,supply chain planner 110 may prioritize the demand picture using one ormore business rules stored in rules and parameters 222 of database 220.

At step 418, supply chain planner 110 uses an exemplary list basedheuristic to consume demand, as per, for example, one or more businessrequirements stored in rules and parameters 222 of database 220 orbusiness constraints stored in constraints 224 of database 220. At step420, supply chain planner 110 generates and stores commit against thedemand data in database 220. At step 422, supply chain planner 110generates and stores demand-consumption map data in database 220. Atstep 424, supply chain planner 110 may apply a filtering technique tofilter the flowpaths and time buckets. At step 426, supply chain planner110 may generate one or more post-consumption plans, such as, forexample, a production plan, a procurement plan, and/or a distributionplan. Supply chain planner 110 then communicates the incremental supplychain plan using a list based heuristic to one or more users or otherentities within supply chain network 120 at step 428 and the methodends.

FIG. 5 illustrates an exemplary method 500 for sentient optimization forcontinuous supply chain management. The method begins at step 502, wheresupply chain planner 110 generates an initial supply chain plan at ascheduled supply chain planning session. At step 504, subsequent to thegeneration of the supply chain plan and during a period of timeseparating the supply chain planning session from a subsequent supplychain planning session, a perturbation in the supply chain input isreceived by supply chain planner 110.

As discussed above, a perturbation in the supply chain inputs mayinclude, but are not limited to new unforecasted orders, new orders,changes to existing orders or forecasts, changes to in-transitshipments, changes to work in progress or work in process, changes ininventory, new capacity, reduced capacity, changes to external supply,and the like. In addition, these perturbations (i.e., changes or events)may be classified into categories such as, for example, supply changes,inventory changes, capacity changes, demand changes, and the like.Although example categories of perturbations are described, embodimentscontemplate any type of perturbations, changes, events, or categories ofperturbations, changes, and/or events, according to particular needs.

Supply chain planner 110 collates the perturbations in the supply chaininputs at step 506 to yield a result set of net perturbations that areto be processed. If there is a next perturbation in the supply chaininput at step 508, supply chain planner 110 returns to step 506 toselect the perturbation. As an example only and not by way oflimitation, step 508 may be required if multiple perturbations areassociated with the same supply chain entity, such as, for example,increase demand quantity, decrease demand quantity, cancel order, andthe like. If there is no next perturbation in the supply chain inputs atstep 508, supply chain planner 110 proceeds to step 510.

At step 510, one or more solvers 214 may provide for a sequence ofsolving the perturbations based on the various classifications ofcategories of the perturbations. As an example only, and not by way oflimitation, the sequence for solving the perturbations may be to solvethe supply changes first, then the solve inventory changes, then solvethe capacity changes, and then finally solve the demand changes.Although, an example sequence of solving the perturbations is described,one or more solvers 214 may include any suitable sequence for solvingany type of perturbations in the supply chain inputs, in any particularorder. In addition, or as an alternative, each solver within one or moresolvers 214 may solve the perturbations using any algorithmic technique.

One or more solvers 214 may include and/or ignore infeasibilities thatexist in the supply chain plan. In addition, one or more solvers 214 maysolve only the infeasibilities associated with the perturbationsreceived subsequent to the generation of the supply chain plan andduring a period of time separating the supply chain planning sessionfrom a subsequent supply chain planning session. If there is another(i.e., next) sequence of solving the perturbations based on either thevarious classifications of categories or based on other input at step512, supply chain planner 110 returns to step 510 to select the sequenceof solving the perturbations. If there is no next sequence of solvingthe perturbations at step 512, supply chain planner 110 generates one ormore workflows 230 to incrementally and optimally adjust the supplychain plan at step 514. Supply chain planner 110 then communicates theincrementally and optimally adjusted supply chain plan to supply chainnetwork 120 at step 516 and the method ends.

Reference in the foregoing specification to “one embodiment”, “anembodiment”, or “another embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the invention. The appearancesof the phrase “in one embodiment” in various places in the specificationare not necessarily all referring to the same embodiment.

While the exemplary embodiments have been shown and described, it willbe understood that various changes and modifications to the foregoingembodiments may become apparent to those skilled in the art withoutdeparting from the spirit and scope of the present invention.

What is claimed is:
 1. A system to reduce computational time of a computer and increase a speed of the computer processing operations, the system comprising: a supply chain network comprising one or more supply chain entities; a supplier of the one or more supply chain entities comprising one or more components, the supplier provides the one or more components to a manufacturer of the one or more supply chain entities; a computer coupled with a database and comprising a processor and a memory to execute instructions to: collapse the supply chain network into one or more flowpaths for at least one of the one or more end items, the one or more flowpaths comprising all end nodes from which consumption occurs; store the generated one or more flowpaths in the database; receive demand for one or more end items for one or more time buckets over a computer network from at least one of the one or more supply chain entities; load the one or more flowpaths in the memory of the computer for the received demand; sort an order of the one or more flowpaths based on one or more rules or parameters; generate a fact table based on the one or more flowpaths and the received demand, the fact table comprising the one of more flowpaths and one or more cells for each of the one or more flowpaths corresponding to the one or more time buckets; reduce the one or more flowpaths in the memory of the computer using one or more pruning techniques and constraints by removing one or more cells in the fact table when a supply or a capacity is not available, thereby reducing the computational time of the computer and increasing the speed of the computer processing operations; store the fact table in the database; in response to a detected change in the fact table in supply, capacity, or demand, generate a supply chain plan by solving the received demand using a list based heuristic; and communicate the generated supply chain plan over the computer network to at least one of the one or more supply chain entities; and the manufacturer comprising one or more routings, the routings comprising one or more apparatuses configured to receive the one or more components and perform at least one operation to transform the one or more components into the one or more end items, based, at least in part, on the generated supply chain plan.
 2. The system of claim 1, wherein the one or more flowpaths are sorted based on a predetermined priority.
 3. The system of claim 1, wherein the one or more supply chain entities are entities selected from the group consisting of the manufacturer, the supplier, a second manufacturer, a second supplier, a distribution center, a retailer, and a customer.
 4. The system of claim 1, wherein the one or more supply chain entities are associated with data reflecting supply chain plans.
 5. The system of claim 4, wherein the data associated with the one or more supply chain entities comprises data associated with rules, parameters, constraints, policies, supply chain planning data, flowpath data, and flowpath lists.
 6. The system of claim 1, wherein the computer further executes instructions to: generate a supply picture of when supply is received.
 7. The system of claim 1, wherein the computer further executes instructions to: generate a demand picture of when demand is forecasted.
 8. A method to reduce computational time of a computer and increase a speed of the computer processing operations, the method comprising: collapsing, by a planning engine stored on a computer comprising a database and a memory, a supply chain network into one or more flowpaths for at least one of the one or more end items, the one or more flowpaths comprising all end nodes from which consumption occurs, the supply chain network comprising one or more supply chain entities, the one or more supply chain entities comprising a supplier comprising one or more components, wherein the supplier provides the one or more components to a manufacturer, the manufacturer comprising one or more routings, the routings comprising one or more apparatuses configured to receive the one or more components and perform at least one operation to transform the one or more components into the one or more end items; storing, by the planning engine, the generated one or more flowpaths in the database; receiving, by the planning engine, demand for one or more end items for one or more time buckets over a computer network from at least one of the one or more supply chain entities; loading, by the planning engine, the one or more flowpaths in the memory of the computer only in context of the received demand; sorting, by the planning engine, an order of the one or more flowpaths based on one or more rules or parameters; generating, by the planning engine, a fact table based on the one or more flowpaths and the received demand, the fact table comprising the one of more flowpaths and one or more cells for each of the one or more flowpaths corresponding to the one or more time buckets; reducing, by the planning engine, the one or more flowpaths in the memory of the computer using one or more pruning techniques and constraints by removing one or more cells in the fact table when a supply or a capacity is not available, thereby reducing the computational time of the computer and increasing the speed of the computer processing operations; generating, by the planning engine, in response to a detected change in supply, capacity, or demand in the fact table, a supply chain plan by solving the received demand using a list based heuristic; communicating, by the planning engine, the generated supply chain plan over the computer network to at least one of the one or more supply chain entities; and performing, by the routings, at least one operation to transform the one or more components into the one or more end items based, at least in part, on the generated supply chain plan.
 9. The method of claim 8, wherein the one or more flowpaths are sorted based on a predetermined priority.
 10. The method of claim 8, wherein the one or more supply chain entities are entities selected from the group consisting of the manufacturer, the supplier, a second manufacturer, a second supplier, a distribution center, a retailer, and a customer.
 11. The method of claim 8, wherein the one or more supply chain entities are associated with data reflecting supply chain plans.
 12. The method of claim 11, wherein the data associated with the one or more supply chain entities comprises data associated with rules, parameters, constraints, policies, supply chain planning data, flowpath data, and flowpath lists.
 13. The method of claim 8 further comprising: generating a supply picture of when supply is received.
 14. The method of claim 8 further comprising: generating a demand picture of when demand is forecasted.
 15. A non-transitory computer-readable medium embodied with software to reduce computational time of a computer and increase a speed of the computer processing operations, the software when executed configured to: collapse a supply chain network into one or more flowpaths for at least one of the one or more end items, the one or more flowpaths comprising all end nodes from which consumption occurs, the supply chain network comprising one or more supply chain entities, the one or more supply chain entities comprising a supplier comprising one or more components, wherein the supplier provides the one or more components to a manufacturer, the manufacturer comprising one or more routings, the routings comprising one or more apparatuses configured to receive the one or more components and perform at least one operation to transform the one or more components into the one or more end items; store the generated one or more flowpaths in the database; receive demand for one or more end items for one or more time buckets over a computer network from at least one of the one or more supply chain entities; load the one or more flowpaths in the memory of the computer only in context of the received demand; sort an order of the one or more flowpaths based on one or more rules or parameters; generate a fact table based on the one or more flowpaths and the received demand, the fact table comprising the one of more flowpaths and one or more cells for each of the one or more flowpaths corresponding to the one or more time buckets; reduce the one or more flowpaths in the memory of the computer using one or more pruning techniques and constraints by removing one or more cells in the fact table when a supply or a capacity is not available, thereby reducing the computational time of the computer and increasing the speed of the computer processing operations; store the fact table in the database; generate in response to a detected change in supply, capacity, or demand in the fact table, a supply chain plan by solving the received demand using a list based heuristic; communicate the generated supply chain plan over the computer network to at least one of the one or more supply chain entities; and perform at least one operation to transform the one or more components into the one or more end items based, at least in part, on the generated supply chain plan.
 16. The non-transitory computer-readable medium of claim 15, wherein the one or more flowpaths are sorted based on a predetermined priority.
 17. The non-transitory computer-readable medium of claim 15, wherein the one or more supply chain entities are entities selected from the group consisting of the manufacturer, the supplier, a second manufacturer, a second supplier, a distribution center, a retailer, and a customer.
 18. The non-transitory computer-readable medium of claim 15, wherein the one or more supply chain entities are associated with data reflecting supply chain plans.
 19. The non-transitory computer-readable medium of claim 18, wherein the data associated with the one or more supply chain entities comprises data associated with rules, parameters, constraints, policies, supply chain planning data, flowpath data, and flowpath lists.
 20. The non-transitory computer-readable medium of claim 15, the software when executed further configured to: generate a supply picture of when supply is received. 